// 有数值类型的, 都转化为数值进行对比
const compareDictVal = (a, b) => {
  // 同类型 => 直接比较
  if (typeof a === typeof b) {
    return a === b
  }
  // 不同类型 => 目前只考虑 number 类型 和 string 类型
  // 同一转成 number 处理, 空串不转
  const transformVal = (val) => {
    return val === '' ? '' : +val
  }
  return transformVal(a) === transformVal(b)
}

// 多个字典翻译
export  function m_multiTranslateByDict (input, dict, inputKey = 'dataValue', outputKey = 'dataLabel', splitStr = ',') {
    if (!input) return ''
    if (!dict) return input
    const outputArr = []
    const inputArr = input.split(splitStr).filter(e => { return e })
    inputArr.forEach(e => {
      const dictItem = dict.find(d => compareDictVal(d[inputKey], e))
      if (dictItem) {
        outputArr.push(dictItem[outputKey])
      } else {
        outputArr.push(e)
      }
    })
    return outputArr.join(splitStr)
  }

export function toCase (input, dict, name="name", value="value") {
  if(!input) return ''
  if (!dict) return input
  for(let i=0;i<dict.length; i++){
    if(dict[i][value] == input){
      return dict[i][name]
    }
  }
}